Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
* Apply the quota assignment to the bucket.
* Commands the data plane to apply a rate limiting strategy to the bucket.
* The process of applying and expiring the rate limiting strategy is detailed in the
* :ref:`QuotaAssignmentAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* message.
*
*
* .envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction quota_assignment_action = 2;
* @return Whether the quotaAssignmentAction field is set.
*/
boolean hasQuotaAssignmentAction();
/**
*
* Apply the quota assignment to the bucket.
* Commands the data plane to apply a rate limiting strategy to the bucket.
* The process of applying and expiring the rate limiting strategy is detailed in the
* :ref:`QuotaAssignmentAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* message.
*
* Apply the quota assignment to the bucket.
* Commands the data plane to apply a rate limiting strategy to the bucket.
* The process of applying and expiring the rate limiting strategy is detailed in the
* :ref:`QuotaAssignmentAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* message.
*
* Abandon the bucket.
* Commands the data plane to abandon the bucket.
* The process of abandoning the bucket is described in the :ref:`AbandonAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* message.
*
*
* .envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction abandon_action = 3;
* @return Whether the abandonAction field is set.
*/
boolean hasAbandonAction();
/**
*
* Abandon the bucket.
* Commands the data plane to abandon the bucket.
* The process of abandoning the bucket is described in the :ref:`AbandonAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* message.
*
* Abandon the bucket.
* Commands the data plane to abandon the bucket.
* The process of abandoning the bucket is described in the :ref:`AbandonAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* message.
*
* Commands the data plane to apply one of the actions to the bucket with the
* :ref:`bucket_id <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.bucket_id>`.
*
*
* Protobuf type {@code envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction}
*/
public static final class BucketAction extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction)
BucketActionOrBuilder {
private static final long serialVersionUID = 0L;
// Use BucketAction.newBuilder() to construct.
private BucketAction(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private BucketAction() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new BucketAction();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private BucketAction(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 10: {
io.envoyproxy.envoy.service.rate_limit_quota.v3.BucketId.Builder subBuilder = null;
if (bucketId_ != null) {
subBuilder = bucketId_.toBuilder();
}
bucketId_ = input.readMessage(io.envoyproxy.envoy.service.rate_limit_quota.v3.BucketId.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(bucketId_);
bucketId_ = subBuilder.buildPartial();
}
break;
}
case 18: {
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.Builder subBuilder = null;
if (bucketActionCase_ == 2) {
subBuilder = ((io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction) bucketAction_).toBuilder();
}
bucketAction_ =
input.readMessage(io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom((io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction) bucketAction_);
bucketAction_ = subBuilder.buildPartial();
}
bucketActionCase_ = 2;
break;
}
case 26: {
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction.Builder subBuilder = null;
if (bucketActionCase_ == 3) {
subBuilder = ((io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction) bucketAction_).toBuilder();
}
bucketAction_ =
input.readMessage(io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom((io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction) bucketAction_);
bucketAction_ = subBuilder.buildPartial();
}
bucketActionCase_ = 3;
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (com.google.protobuf.UninitializedMessageException e) {
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RlqsProto.internal_static_envoy_service_rate_limit_quota_v3_RateLimitQuotaResponse_BucketAction_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RlqsProto.internal_static_envoy_service_rate_limit_quota_v3_RateLimitQuotaResponse_BucketAction_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.class, io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.Builder.class);
}
public interface QuotaAssignmentActionOrBuilder extends
// @@protoc_insertion_point(interface_extends:envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction)
com.google.protobuf.MessageOrBuilder {
/**
*
* A duration after which the assignment is be considered ``expired``. The process of the
* expiration is described :ref:`above
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`.
* * If unset, the assignment has no expiration date.
* * If set to ``0``, the assignment expires immediately, forcing the client into the
* :ref:`"expired assignment"
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>`
* state. This may be used by the RLQS server in cases when it needs clients to proactively
* fall back to the pre-configured :ref:`ExpiredAssignmentBehavior
* <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`,
* f.e. before the server going into restart.
* .. attention::
* Note that :ref:`expiring
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* the assignment is not the same as :ref:`abandoning
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* the assignment. While expiring the assignment just transitions the bucket to
* the "expired assignment" state; abandoning the assignment completely erases
* the bucket from the data plane memory, and stops the usage reports.
*
*
* .google.protobuf.Duration assignment_time_to_live = 2 [(.validate.rules) = { ... }
* @return Whether the assignmentTimeToLive field is set.
*/
boolean hasAssignmentTimeToLive();
/**
*
* A duration after which the assignment is be considered ``expired``. The process of the
* expiration is described :ref:`above
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`.
* * If unset, the assignment has no expiration date.
* * If set to ``0``, the assignment expires immediately, forcing the client into the
* :ref:`"expired assignment"
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>`
* state. This may be used by the RLQS server in cases when it needs clients to proactively
* fall back to the pre-configured :ref:`ExpiredAssignmentBehavior
* <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`,
* f.e. before the server going into restart.
* .. attention::
* Note that :ref:`expiring
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* the assignment is not the same as :ref:`abandoning
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* the assignment. While expiring the assignment just transitions the bucket to
* the "expired assignment" state; abandoning the assignment completely erases
* the bucket from the data plane memory, and stops the usage reports.
*
* A duration after which the assignment is be considered ``expired``. The process of the
* expiration is described :ref:`above
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`.
* * If unset, the assignment has no expiration date.
* * If set to ``0``, the assignment expires immediately, forcing the client into the
* :ref:`"expired assignment"
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>`
* state. This may be used by the RLQS server in cases when it needs clients to proactively
* fall back to the pre-configured :ref:`ExpiredAssignmentBehavior
* <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`,
* f.e. before the server going into restart.
* .. attention::
* Note that :ref:`expiring
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* the assignment is not the same as :ref:`abandoning
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* the assignment. While expiring the assignment just transitions the bucket to
* the "expired assignment" state; abandoning the assignment completely erases
* the bucket from the data plane memory, and stops the usage reports.
*
* Quota assignment for the bucket. Configures the rate limiting strategy and the duration
* for the given :ref:`bucket_id
* <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.bucket_id>`.
* **Applying the first assignment to the bucket**
* Once the data plane receives the ``QuotaAssignmentAction``, it must send the current usage
* report for the bucket, and start rate limiting requests matched into the bucket
* using the strategy configured in the :ref:`rate_limit_strategy
* <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.rate_limit_strategy>`
* field. The assignment becomes bucket's ``active`` assignment.
* **Expiring the assignment**
* The duration of the assignment defined in the :ref:`assignment_time_to_live
* <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.assignment_time_to_live>`
* field. When the duration runs off, the assignment is ``expired``, and no longer ``active``.
* The data plane should stop applying the rate limiting strategy to the bucket, and transition
* the bucket to the "expired assignment" state. This activates the behavior configured in the
* :ref:`expired_assignment_behavior <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.expired_assignment_behavior>`
* field.
* **Replacing the assignment**
* * If the rate limiting strategy is different from bucket's ``active`` assignment, or
* the current bucket assignment is ``expired``, the data plane must immediately
* end the current assignment, report the bucket usage, and apply the new assignment.
* The new assignment becomes bucket's ``active`` assignment.
* * If the rate limiting strategy is the same as the bucket's ``active`` (not ``expired``)
* assignment, the data plane should extend the duration of the ``active`` assignment
* for the duration of the new assignment provided in the :ref:`assignment_time_to_live
* <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.assignment_time_to_live>`
* field. The ``active`` assignment is considered unchanged.
*
*
* Protobuf type {@code envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction}
*/
public static final class QuotaAssignmentAction extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction)
QuotaAssignmentActionOrBuilder {
private static final long serialVersionUID = 0L;
// Use QuotaAssignmentAction.newBuilder() to construct.
private QuotaAssignmentAction(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private QuotaAssignmentAction() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new QuotaAssignmentAction();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private QuotaAssignmentAction(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
case 18: {
com.google.protobuf.Duration.Builder subBuilder = null;
if (assignmentTimeToLive_ != null) {
subBuilder = assignmentTimeToLive_.toBuilder();
}
assignmentTimeToLive_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(assignmentTimeToLive_);
assignmentTimeToLive_ = subBuilder.buildPartial();
}
break;
}
case 26: {
io.envoyproxy.envoy.type.v3.RateLimitStrategy.Builder subBuilder = null;
if (rateLimitStrategy_ != null) {
subBuilder = rateLimitStrategy_.toBuilder();
}
rateLimitStrategy_ = input.readMessage(io.envoyproxy.envoy.type.v3.RateLimitStrategy.parser(), extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(rateLimitStrategy_);
rateLimitStrategy_ = subBuilder.buildPartial();
}
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (com.google.protobuf.UninitializedMessageException e) {
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RlqsProto.internal_static_envoy_service_rate_limit_quota_v3_RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RlqsProto.internal_static_envoy_service_rate_limit_quota_v3_RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.class, io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.Builder.class);
}
public static final int ASSIGNMENT_TIME_TO_LIVE_FIELD_NUMBER = 2;
private com.google.protobuf.Duration assignmentTimeToLive_;
/**
*
* A duration after which the assignment is be considered ``expired``. The process of the
* expiration is described :ref:`above
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`.
* * If unset, the assignment has no expiration date.
* * If set to ``0``, the assignment expires immediately, forcing the client into the
* :ref:`"expired assignment"
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>`
* state. This may be used by the RLQS server in cases when it needs clients to proactively
* fall back to the pre-configured :ref:`ExpiredAssignmentBehavior
* <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`,
* f.e. before the server going into restart.
* .. attention::
* Note that :ref:`expiring
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* the assignment is not the same as :ref:`abandoning
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* the assignment. While expiring the assignment just transitions the bucket to
* the "expired assignment" state; abandoning the assignment completely erases
* the bucket from the data plane memory, and stops the usage reports.
*
*
* .google.protobuf.Duration assignment_time_to_live = 2 [(.validate.rules) = { ... }
* @return Whether the assignmentTimeToLive field is set.
*/
@java.lang.Override
public boolean hasAssignmentTimeToLive() {
return assignmentTimeToLive_ != null;
}
/**
*
* A duration after which the assignment is be considered ``expired``. The process of the
* expiration is described :ref:`above
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`.
* * If unset, the assignment has no expiration date.
* * If set to ``0``, the assignment expires immediately, forcing the client into the
* :ref:`"expired assignment"
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>`
* state. This may be used by the RLQS server in cases when it needs clients to proactively
* fall back to the pre-configured :ref:`ExpiredAssignmentBehavior
* <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`,
* f.e. before the server going into restart.
* .. attention::
* Note that :ref:`expiring
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* the assignment is not the same as :ref:`abandoning
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* the assignment. While expiring the assignment just transitions the bucket to
* the "expired assignment" state; abandoning the assignment completely erases
* the bucket from the data plane memory, and stops the usage reports.
*
* A duration after which the assignment is be considered ``expired``. The process of the
* expiration is described :ref:`above
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`.
* * If unset, the assignment has no expiration date.
* * If set to ``0``, the assignment expires immediately, forcing the client into the
* :ref:`"expired assignment"
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>`
* state. This may be used by the RLQS server in cases when it needs clients to proactively
* fall back to the pre-configured :ref:`ExpiredAssignmentBehavior
* <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`,
* f.e. before the server going into restart.
* .. attention::
* Note that :ref:`expiring
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* the assignment is not the same as :ref:`abandoning
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* the assignment. While expiring the assignment just transitions the bucket to
* the "expired assignment" state; abandoning the assignment completely erases
* the bucket from the data plane memory, and stops the usage reports.
*
*
* .google.protobuf.Duration assignment_time_to_live = 2 [(.validate.rules) = { ... }
*/
@java.lang.Override
public com.google.protobuf.DurationOrBuilder getAssignmentTimeToLiveOrBuilder() {
return getAssignmentTimeToLive();
}
public static final int RATE_LIMIT_STRATEGY_FIELD_NUMBER = 3;
private io.envoyproxy.envoy.type.v3.RateLimitStrategy rateLimitStrategy_;
/**
*
* Configures the local rate limiter for the request matched to the bucket.
* If not set, allow all requests.
*
*
* .envoy.type.v3.RateLimitStrategy rate_limit_strategy = 3;
* @return Whether the rateLimitStrategy field is set.
*/
@java.lang.Override
public boolean hasRateLimitStrategy() {
return rateLimitStrategy_ != null;
}
/**
*
* Configures the local rate limiter for the request matched to the bucket.
* If not set, allow all requests.
*
* Configures the local rate limiter for the request matched to the bucket.
* If not set, allow all requests.
*
*
* .envoy.type.v3.RateLimitStrategy rate_limit_strategy = 3;
*/
@java.lang.Override
public io.envoyproxy.envoy.type.v3.RateLimitStrategyOrBuilder getRateLimitStrategyOrBuilder() {
return getRateLimitStrategy();
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (assignmentTimeToLive_ != null) {
output.writeMessage(2, getAssignmentTimeToLive());
}
if (rateLimitStrategy_ != null) {
output.writeMessage(3, getRateLimitStrategy());
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (assignmentTimeToLive_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(2, getAssignmentTimeToLive());
}
if (rateLimitStrategy_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(3, getRateLimitStrategy());
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction)) {
return super.equals(obj);
}
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction other = (io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction) obj;
if (hasAssignmentTimeToLive() != other.hasAssignmentTimeToLive()) return false;
if (hasAssignmentTimeToLive()) {
if (!getAssignmentTimeToLive()
.equals(other.getAssignmentTimeToLive())) return false;
}
if (hasRateLimitStrategy() != other.hasRateLimitStrategy()) return false;
if (hasRateLimitStrategy()) {
if (!getRateLimitStrategy()
.equals(other.getRateLimitStrategy())) return false;
}
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
if (hasAssignmentTimeToLive()) {
hash = (37 * hash) + ASSIGNMENT_TIME_TO_LIVE_FIELD_NUMBER;
hash = (53 * hash) + getAssignmentTimeToLive().hashCode();
}
if (hasRateLimitStrategy()) {
hash = (37 * hash) + RATE_LIMIT_STRATEGY_FIELD_NUMBER;
hash = (53 * hash) + getRateLimitStrategy().hashCode();
}
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
*
* Quota assignment for the bucket. Configures the rate limiting strategy and the duration
* for the given :ref:`bucket_id
* <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.bucket_id>`.
* **Applying the first assignment to the bucket**
* Once the data plane receives the ``QuotaAssignmentAction``, it must send the current usage
* report for the bucket, and start rate limiting requests matched into the bucket
* using the strategy configured in the :ref:`rate_limit_strategy
* <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.rate_limit_strategy>`
* field. The assignment becomes bucket's ``active`` assignment.
* **Expiring the assignment**
* The duration of the assignment defined in the :ref:`assignment_time_to_live
* <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.assignment_time_to_live>`
* field. When the duration runs off, the assignment is ``expired``, and no longer ``active``.
* The data plane should stop applying the rate limiting strategy to the bucket, and transition
* the bucket to the "expired assignment" state. This activates the behavior configured in the
* :ref:`expired_assignment_behavior <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.expired_assignment_behavior>`
* field.
* **Replacing the assignment**
* * If the rate limiting strategy is different from bucket's ``active`` assignment, or
* the current bucket assignment is ``expired``, the data plane must immediately
* end the current assignment, report the bucket usage, and apply the new assignment.
* The new assignment becomes bucket's ``active`` assignment.
* * If the rate limiting strategy is the same as the bucket's ``active`` (not ``expired``)
* assignment, the data plane should extend the duration of the ``active`` assignment
* for the duration of the new assignment provided in the :ref:`assignment_time_to_live
* <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.assignment_time_to_live>`
* field. The ``active`` assignment is considered unchanged.
*
*
* Protobuf type {@code envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder implements
// @@protoc_insertion_point(builder_implements:envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction)
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentActionOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RlqsProto.internal_static_envoy_service_rate_limit_quota_v3_RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RlqsProto.internal_static_envoy_service_rate_limit_quota_v3_RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.class, io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.Builder.class);
}
// Construct using io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
if (assignmentTimeToLiveBuilder_ == null) {
assignmentTimeToLive_ = null;
} else {
assignmentTimeToLive_ = null;
assignmentTimeToLiveBuilder_ = null;
}
if (rateLimitStrategyBuilder_ == null) {
rateLimitStrategy_ = null;
} else {
rateLimitStrategy_ = null;
rateLimitStrategyBuilder_ = null;
}
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RlqsProto.internal_static_envoy_service_rate_limit_quota_v3_RateLimitQuotaResponse_BucketAction_QuotaAssignmentAction_descriptor;
}
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction getDefaultInstanceForType() {
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.getDefaultInstance();
}
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction build() {
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction buildPartial() {
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction result = new io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction(this);
if (assignmentTimeToLiveBuilder_ == null) {
result.assignmentTimeToLive_ = assignmentTimeToLive_;
} else {
result.assignmentTimeToLive_ = assignmentTimeToLiveBuilder_.build();
}
if (rateLimitStrategyBuilder_ == null) {
result.rateLimitStrategy_ = rateLimitStrategy_;
} else {
result.rateLimitStrategy_ = rateLimitStrategyBuilder_.build();
}
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction) {
return mergeFrom((io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction other) {
if (other == io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.getDefaultInstance()) return this;
if (other.hasAssignmentTimeToLive()) {
mergeAssignmentTimeToLive(other.getAssignmentTimeToLive());
}
if (other.hasRateLimitStrategy()) {
mergeRateLimitStrategy(other.getRateLimitStrategy());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private com.google.protobuf.Duration assignmentTimeToLive_;
private com.google.protobuf.SingleFieldBuilderV3<
com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> assignmentTimeToLiveBuilder_;
/**
*
* A duration after which the assignment is be considered ``expired``. The process of the
* expiration is described :ref:`above
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`.
* * If unset, the assignment has no expiration date.
* * If set to ``0``, the assignment expires immediately, forcing the client into the
* :ref:`"expired assignment"
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>`
* state. This may be used by the RLQS server in cases when it needs clients to proactively
* fall back to the pre-configured :ref:`ExpiredAssignmentBehavior
* <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`,
* f.e. before the server going into restart.
* .. attention::
* Note that :ref:`expiring
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* the assignment is not the same as :ref:`abandoning
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* the assignment. While expiring the assignment just transitions the bucket to
* the "expired assignment" state; abandoning the assignment completely erases
* the bucket from the data plane memory, and stops the usage reports.
*
*
* .google.protobuf.Duration assignment_time_to_live = 2 [(.validate.rules) = { ... }
* @return Whether the assignmentTimeToLive field is set.
*/
public boolean hasAssignmentTimeToLive() {
return assignmentTimeToLiveBuilder_ != null || assignmentTimeToLive_ != null;
}
/**
*
* A duration after which the assignment is be considered ``expired``. The process of the
* expiration is described :ref:`above
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`.
* * If unset, the assignment has no expiration date.
* * If set to ``0``, the assignment expires immediately, forcing the client into the
* :ref:`"expired assignment"
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>`
* state. This may be used by the RLQS server in cases when it needs clients to proactively
* fall back to the pre-configured :ref:`ExpiredAssignmentBehavior
* <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`,
* f.e. before the server going into restart.
* .. attention::
* Note that :ref:`expiring
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* the assignment is not the same as :ref:`abandoning
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* the assignment. While expiring the assignment just transitions the bucket to
* the "expired assignment" state; abandoning the assignment completely erases
* the bucket from the data plane memory, and stops the usage reports.
*
* A duration after which the assignment is be considered ``expired``. The process of the
* expiration is described :ref:`above
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`.
* * If unset, the assignment has no expiration date.
* * If set to ``0``, the assignment expires immediately, forcing the client into the
* :ref:`"expired assignment"
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>`
* state. This may be used by the RLQS server in cases when it needs clients to proactively
* fall back to the pre-configured :ref:`ExpiredAssignmentBehavior
* <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`,
* f.e. before the server going into restart.
* .. attention::
* Note that :ref:`expiring
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* the assignment is not the same as :ref:`abandoning
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* the assignment. While expiring the assignment just transitions the bucket to
* the "expired assignment" state; abandoning the assignment completely erases
* the bucket from the data plane memory, and stops the usage reports.
*
* A duration after which the assignment is be considered ``expired``. The process of the
* expiration is described :ref:`above
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`.
* * If unset, the assignment has no expiration date.
* * If set to ``0``, the assignment expires immediately, forcing the client into the
* :ref:`"expired assignment"
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>`
* state. This may be used by the RLQS server in cases when it needs clients to proactively
* fall back to the pre-configured :ref:`ExpiredAssignmentBehavior
* <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`,
* f.e. before the server going into restart.
* .. attention::
* Note that :ref:`expiring
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* the assignment is not the same as :ref:`abandoning
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* the assignment. While expiring the assignment just transitions the bucket to
* the "expired assignment" state; abandoning the assignment completely erases
* the bucket from the data plane memory, and stops the usage reports.
*
* A duration after which the assignment is be considered ``expired``. The process of the
* expiration is described :ref:`above
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`.
* * If unset, the assignment has no expiration date.
* * If set to ``0``, the assignment expires immediately, forcing the client into the
* :ref:`"expired assignment"
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>`
* state. This may be used by the RLQS server in cases when it needs clients to proactively
* fall back to the pre-configured :ref:`ExpiredAssignmentBehavior
* <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`,
* f.e. before the server going into restart.
* .. attention::
* Note that :ref:`expiring
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* the assignment is not the same as :ref:`abandoning
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* the assignment. While expiring the assignment just transitions the bucket to
* the "expired assignment" state; abandoning the assignment completely erases
* the bucket from the data plane memory, and stops the usage reports.
*
* A duration after which the assignment is be considered ``expired``. The process of the
* expiration is described :ref:`above
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`.
* * If unset, the assignment has no expiration date.
* * If set to ``0``, the assignment expires immediately, forcing the client into the
* :ref:`"expired assignment"
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>`
* state. This may be used by the RLQS server in cases when it needs clients to proactively
* fall back to the pre-configured :ref:`ExpiredAssignmentBehavior
* <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`,
* f.e. before the server going into restart.
* .. attention::
* Note that :ref:`expiring
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* the assignment is not the same as :ref:`abandoning
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* the assignment. While expiring the assignment just transitions the bucket to
* the "expired assignment" state; abandoning the assignment completely erases
* the bucket from the data plane memory, and stops the usage reports.
*
* A duration after which the assignment is be considered ``expired``. The process of the
* expiration is described :ref:`above
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`.
* * If unset, the assignment has no expiration date.
* * If set to ``0``, the assignment expires immediately, forcing the client into the
* :ref:`"expired assignment"
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>`
* state. This may be used by the RLQS server in cases when it needs clients to proactively
* fall back to the pre-configured :ref:`ExpiredAssignmentBehavior
* <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`,
* f.e. before the server going into restart.
* .. attention::
* Note that :ref:`expiring
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* the assignment is not the same as :ref:`abandoning
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* the assignment. While expiring the assignment just transitions the bucket to
* the "expired assignment" state; abandoning the assignment completely erases
* the bucket from the data plane memory, and stops the usage reports.
*
* A duration after which the assignment is be considered ``expired``. The process of the
* expiration is described :ref:`above
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`.
* * If unset, the assignment has no expiration date.
* * If set to ``0``, the assignment expires immediately, forcing the client into the
* :ref:`"expired assignment"
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>`
* state. This may be used by the RLQS server in cases when it needs clients to proactively
* fall back to the pre-configured :ref:`ExpiredAssignmentBehavior
* <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`,
* f.e. before the server going into restart.
* .. attention::
* Note that :ref:`expiring
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* the assignment is not the same as :ref:`abandoning
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* the assignment. While expiring the assignment just transitions the bucket to
* the "expired assignment" state; abandoning the assignment completely erases
* the bucket from the data plane memory, and stops the usage reports.
*
* A duration after which the assignment is be considered ``expired``. The process of the
* expiration is described :ref:`above
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`.
* * If unset, the assignment has no expiration date.
* * If set to ``0``, the assignment expires immediately, forcing the client into the
* :ref:`"expired assignment"
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior.expired_assignment_behavior_timeout>`
* state. This may be used by the RLQS server in cases when it needs clients to proactively
* fall back to the pre-configured :ref:`ExpiredAssignmentBehavior
* <envoy_v3_api_msg_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.ExpiredAssignmentBehavior>`,
* f.e. before the server going into restart.
* .. attention::
* Note that :ref:`expiring
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* the assignment is not the same as :ref:`abandoning
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* the assignment. While expiring the assignment just transitions the bucket to
* the "expired assignment" state; abandoning the assignment completely erases
* the bucket from the data plane memory, and stops the usage reports.
*
* Configures the local rate limiter for the request matched to the bucket.
* If not set, allow all requests.
*
*
* .envoy.type.v3.RateLimitStrategy rate_limit_strategy = 3;
*/
private com.google.protobuf.SingleFieldBuilderV3<
io.envoyproxy.envoy.type.v3.RateLimitStrategy, io.envoyproxy.envoy.type.v3.RateLimitStrategy.Builder, io.envoyproxy.envoy.type.v3.RateLimitStrategyOrBuilder>
getRateLimitStrategyFieldBuilder() {
if (rateLimitStrategyBuilder_ == null) {
rateLimitStrategyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
io.envoyproxy.envoy.type.v3.RateLimitStrategy, io.envoyproxy.envoy.type.v3.RateLimitStrategy.Builder, io.envoyproxy.envoy.type.v3.RateLimitStrategyOrBuilder>(
getRateLimitStrategy(),
getParentForChildren(),
isClean());
rateLimitStrategy_ = null;
}
return rateLimitStrategyBuilder_;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction)
}
// @@protoc_insertion_point(class_scope:envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction)
private static final io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction();
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser() {
@java.lang.Override
public QuotaAssignmentAction parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new QuotaAssignmentAction(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser getParserForType() {
return PARSER;
}
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
public interface AbandonActionOrBuilder extends
// @@protoc_insertion_point(interface_extends:envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction)
com.google.protobuf.MessageOrBuilder {
}
/**
*
* Abandon action for the bucket. Indicates that the RLQS server will no longer be
* sending updates for the given :ref:`bucket_id
* <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.bucket_id>`.
* If no requests are reported for a bucket, after some time the server considers the bucket
* inactive. The server stops tracking the bucket, and instructs the the data plane to abandon
* the bucket via this message.
* **Abandoning the assignment**
* The data plane is to erase the bucket (including its usage data) from the memory.
* It should stop tracking the bucket, and stop reporting its usage. This effectively resets
* the data plane to the state prior to matching the first request into the bucket.
* **Restarting the subscription**
* If a new request is matched into a bucket previously abandoned, the data plane must behave
* as if it has never tracked the bucket, and it's the first request matched into it:
* 1. The process of :ref:`subscription and reporting
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.reporting_interval>`
* starts from the beginning.
* 2. The bucket transitions to the :ref:`"no assignment"
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.no_assignment_behavior>`
* state.
* 3. Once the new assignment is received, it's applied per
* "Applying the first assignment to the bucket" section of the :ref:`QuotaAssignmentAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`.
*
*
* Protobuf type {@code envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction}
*/
public static final class AbandonAction extends
com.google.protobuf.GeneratedMessageV3 implements
// @@protoc_insertion_point(message_implements:envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction)
AbandonActionOrBuilder {
private static final long serialVersionUID = 0L;
// Use AbandonAction.newBuilder() to construct.
private AbandonAction(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
super(builder);
}
private AbandonAction() {
}
@java.lang.Override
@SuppressWarnings({"unused"})
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new AbandonAction();
}
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private AbandonAction(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (com.google.protobuf.UninitializedMessageException e) {
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RlqsProto.internal_static_envoy_service_rate_limit_quota_v3_RateLimitQuotaResponse_BucketAction_AbandonAction_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RlqsProto.internal_static_envoy_service_rate_limit_quota_v3_RateLimitQuotaResponse_BucketAction_AbandonAction_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction.class, io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction.Builder.class);
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction)) {
return super.equals(obj);
}
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction other = (io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction) obj;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
*
* Abandon action for the bucket. Indicates that the RLQS server will no longer be
* sending updates for the given :ref:`bucket_id
* <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.bucket_id>`.
* If no requests are reported for a bucket, after some time the server considers the bucket
* inactive. The server stops tracking the bucket, and instructs the the data plane to abandon
* the bucket via this message.
* **Abandoning the assignment**
* The data plane is to erase the bucket (including its usage data) from the memory.
* It should stop tracking the bucket, and stop reporting its usage. This effectively resets
* the data plane to the state prior to matching the first request into the bucket.
* **Restarting the subscription**
* If a new request is matched into a bucket previously abandoned, the data plane must behave
* as if it has never tracked the bucket, and it's the first request matched into it:
* 1. The process of :ref:`subscription and reporting
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.reporting_interval>`
* starts from the beginning.
* 2. The bucket transitions to the :ref:`"no assignment"
* <envoy_v3_api_field_extensions.filters.http.rate_limit_quota.v3.RateLimitQuotaBucketSettings.no_assignment_behavior>`
* state.
* 3. Once the new assignment is received, it's applied per
* "Applying the first assignment to the bucket" section of the :ref:`QuotaAssignmentAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`.
*
*
* Protobuf type {@code envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder implements
// @@protoc_insertion_point(builder_implements:envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction)
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonActionOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RlqsProto.internal_static_envoy_service_rate_limit_quota_v3_RateLimitQuotaResponse_BucketAction_AbandonAction_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RlqsProto.internal_static_envoy_service_rate_limit_quota_v3_RateLimitQuotaResponse_BucketAction_AbandonAction_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction.class, io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction.Builder.class);
}
// Construct using io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RlqsProto.internal_static_envoy_service_rate_limit_quota_v3_RateLimitQuotaResponse_BucketAction_AbandonAction_descriptor;
}
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction getDefaultInstanceForType() {
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction.getDefaultInstance();
}
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction build() {
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction buildPartial() {
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction result = new io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction(this);
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction) {
return mergeFrom((io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction other) {
if (other == io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction.getDefaultInstance()) return this;
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction)
}
// @@protoc_insertion_point(class_scope:envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction)
private static final io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction();
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser() {
@java.lang.Override
public AbandonAction parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new AbandonAction(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser getParserForType() {
return PARSER;
}
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
private int bucketActionCase_ = 0;
private java.lang.Object bucketAction_;
public enum BucketActionCase
implements com.google.protobuf.Internal.EnumLite,
com.google.protobuf.AbstractMessage.InternalOneOfEnum {
QUOTA_ASSIGNMENT_ACTION(2),
ABANDON_ACTION(3),
BUCKETACTION_NOT_SET(0);
private final int value;
private BucketActionCase(int value) {
this.value = value;
}
/**
* @param value The number of the enum to look for.
* @return The enum associated with the given number.
* @deprecated Use {@link #forNumber(int)} instead.
*/
@java.lang.Deprecated
public static BucketActionCase valueOf(int value) {
return forNumber(value);
}
public static BucketActionCase forNumber(int value) {
switch (value) {
case 2: return QUOTA_ASSIGNMENT_ACTION;
case 3: return ABANDON_ACTION;
case 0: return BUCKETACTION_NOT_SET;
default: return null;
}
}
public int getNumber() {
return this.value;
}
};
public BucketActionCase
getBucketActionCase() {
return BucketActionCase.forNumber(
bucketActionCase_);
}
public static final int BUCKET_ID_FIELD_NUMBER = 1;
private io.envoyproxy.envoy.service.rate_limit_quota.v3.BucketId bucketId_;
/**
*
* ``BucketId`` for which request the action is applied.
*
*
* .envoy.service.rate_limit_quota.v3.BucketId bucket_id = 1 [(.validate.rules) = { ... }
* @return Whether the bucketId field is set.
*/
@java.lang.Override
public boolean hasBucketId() {
return bucketId_ != null;
}
/**
*
* ``BucketId`` for which request the action is applied.
*
* ``BucketId`` for which request the action is applied.
*
*
* .envoy.service.rate_limit_quota.v3.BucketId bucket_id = 1 [(.validate.rules) = { ... }
*/
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.BucketIdOrBuilder getBucketIdOrBuilder() {
return getBucketId();
}
public static final int QUOTA_ASSIGNMENT_ACTION_FIELD_NUMBER = 2;
/**
*
* Apply the quota assignment to the bucket.
* Commands the data plane to apply a rate limiting strategy to the bucket.
* The process of applying and expiring the rate limiting strategy is detailed in the
* :ref:`QuotaAssignmentAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* message.
*
*
* .envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction quota_assignment_action = 2;
* @return Whether the quotaAssignmentAction field is set.
*/
@java.lang.Override
public boolean hasQuotaAssignmentAction() {
return bucketActionCase_ == 2;
}
/**
*
* Apply the quota assignment to the bucket.
* Commands the data plane to apply a rate limiting strategy to the bucket.
* The process of applying and expiring the rate limiting strategy is detailed in the
* :ref:`QuotaAssignmentAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* message.
*
*
* .envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction quota_assignment_action = 2;
* @return The quotaAssignmentAction.
*/
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction getQuotaAssignmentAction() {
if (bucketActionCase_ == 2) {
return (io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction) bucketAction_;
}
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.getDefaultInstance();
}
/**
*
* Apply the quota assignment to the bucket.
* Commands the data plane to apply a rate limiting strategy to the bucket.
* The process of applying and expiring the rate limiting strategy is detailed in the
* :ref:`QuotaAssignmentAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* message.
*
*
* .envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction quota_assignment_action = 2;
*/
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentActionOrBuilder getQuotaAssignmentActionOrBuilder() {
if (bucketActionCase_ == 2) {
return (io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction) bucketAction_;
}
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.getDefaultInstance();
}
public static final int ABANDON_ACTION_FIELD_NUMBER = 3;
/**
*
* Abandon the bucket.
* Commands the data plane to abandon the bucket.
* The process of abandoning the bucket is described in the :ref:`AbandonAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* message.
*
*
* .envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction abandon_action = 3;
* @return Whether the abandonAction field is set.
*/
@java.lang.Override
public boolean hasAbandonAction() {
return bucketActionCase_ == 3;
}
/**
*
* Abandon the bucket.
* Commands the data plane to abandon the bucket.
* The process of abandoning the bucket is described in the :ref:`AbandonAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* message.
*
*
* .envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction abandon_action = 3;
* @return The abandonAction.
*/
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction getAbandonAction() {
if (bucketActionCase_ == 3) {
return (io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction) bucketAction_;
}
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction.getDefaultInstance();
}
/**
*
* Abandon the bucket.
* Commands the data plane to abandon the bucket.
* The process of abandoning the bucket is described in the :ref:`AbandonAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* message.
*
*
* .envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction abandon_action = 3;
*/
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonActionOrBuilder getAbandonActionOrBuilder() {
if (bucketActionCase_ == 3) {
return (io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction) bucketAction_;
}
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction.getDefaultInstance();
}
private byte memoizedIsInitialized = -1;
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
if (isInitialized == 0) return false;
memoizedIsInitialized = 1;
return true;
}
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (bucketId_ != null) {
output.writeMessage(1, getBucketId());
}
if (bucketActionCase_ == 2) {
output.writeMessage(2, (io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction) bucketAction_);
}
if (bucketActionCase_ == 3) {
output.writeMessage(3, (io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction) bucketAction_);
}
unknownFields.writeTo(output);
}
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
size = 0;
if (bucketId_ != null) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(1, getBucketId());
}
if (bucketActionCase_ == 2) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(2, (io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction) bucketAction_);
}
if (bucketActionCase_ == 3) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(3, (io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction) bucketAction_);
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction)) {
return super.equals(obj);
}
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction other = (io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction) obj;
if (hasBucketId() != other.hasBucketId()) return false;
if (hasBucketId()) {
if (!getBucketId()
.equals(other.getBucketId())) return false;
}
if (!getBucketActionCase().equals(other.getBucketActionCase())) return false;
switch (bucketActionCase_) {
case 2:
if (!getQuotaAssignmentAction()
.equals(other.getQuotaAssignmentAction())) return false;
break;
case 3:
if (!getAbandonAction()
.equals(other.getAbandonAction())) return false;
break;
case 0:
default:
}
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
}
int hash = 41;
hash = (19 * hash) + getDescriptor().hashCode();
if (hasBucketId()) {
hash = (37 * hash) + BUCKET_ID_FIELD_NUMBER;
hash = (53 * hash) + getBucketId().hashCode();
}
switch (bucketActionCase_) {
case 2:
hash = (37 * hash) + QUOTA_ASSIGNMENT_ACTION_FIELD_NUMBER;
hash = (53 * hash) + getQuotaAssignmentAction().hashCode();
break;
case 3:
hash = (37 * hash) + ABANDON_ACTION_FIELD_NUMBER;
hash = (53 * hash) + getAbandonAction().hashCode();
break;
case 0:
default:
}
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input);
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageV3
.parseWithIOException(PARSER, input, extensionRegistry);
}
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
public static Builder newBuilder(io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
*
* Commands the data plane to apply one of the actions to the bucket with the
* :ref:`bucket_id <envoy_v3_api_field_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.bucket_id>`.
*
*
* Protobuf type {@code envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageV3.Builder implements
// @@protoc_insertion_point(builder_implements:envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction)
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketActionOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RlqsProto.internal_static_envoy_service_rate_limit_quota_v3_RateLimitQuotaResponse_BucketAction_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RlqsProto.internal_static_envoy_service_rate_limit_quota_v3_RateLimitQuotaResponse_BucketAction_fieldAccessorTable
.ensureFieldAccessorsInitialized(
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.class, io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.Builder.class);
}
// Construct using io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessageV3
.alwaysUseFieldBuilders) {
}
}
@java.lang.Override
public Builder clear() {
super.clear();
if (bucketIdBuilder_ == null) {
bucketId_ = null;
} else {
bucketId_ = null;
bucketIdBuilder_ = null;
}
bucketActionCase_ = 0;
bucketAction_ = null;
return this;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RlqsProto.internal_static_envoy_service_rate_limit_quota_v3_RateLimitQuotaResponse_BucketAction_descriptor;
}
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction getDefaultInstanceForType() {
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.getDefaultInstance();
}
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction build() {
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction buildPartial() {
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction result = new io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction(this);
if (bucketIdBuilder_ == null) {
result.bucketId_ = bucketId_;
} else {
result.bucketId_ = bucketIdBuilder_.build();
}
if (bucketActionCase_ == 2) {
if (quotaAssignmentActionBuilder_ == null) {
result.bucketAction_ = bucketAction_;
} else {
result.bucketAction_ = quotaAssignmentActionBuilder_.build();
}
}
if (bucketActionCase_ == 3) {
if (abandonActionBuilder_ == null) {
result.bucketAction_ = bucketAction_;
} else {
result.bucketAction_ = abandonActionBuilder_.build();
}
}
result.bucketActionCase_ = bucketActionCase_;
onBuilt();
return result;
}
@java.lang.Override
public Builder clone() {
return super.clone();
}
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.setField(field, value);
}
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction) {
return mergeFrom((io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction other) {
if (other == io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.getDefaultInstance()) return this;
if (other.hasBucketId()) {
mergeBucketId(other.getBucketId());
}
switch (other.getBucketActionCase()) {
case QUOTA_ASSIGNMENT_ACTION: {
mergeQuotaAssignmentAction(other.getQuotaAssignmentAction());
break;
}
case ABANDON_ACTION: {
mergeAbandonAction(other.getAbandonAction());
break;
}
case BUCKETACTION_NOT_SET: {
break;
}
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction) e.getUnfinishedMessage();
throw e.unwrapIOException();
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private int bucketActionCase_ = 0;
private java.lang.Object bucketAction_;
public BucketActionCase
getBucketActionCase() {
return BucketActionCase.forNumber(
bucketActionCase_);
}
public Builder clearBucketAction() {
bucketActionCase_ = 0;
bucketAction_ = null;
onChanged();
return this;
}
private io.envoyproxy.envoy.service.rate_limit_quota.v3.BucketId bucketId_;
private com.google.protobuf.SingleFieldBuilderV3<
io.envoyproxy.envoy.service.rate_limit_quota.v3.BucketId, io.envoyproxy.envoy.service.rate_limit_quota.v3.BucketId.Builder, io.envoyproxy.envoy.service.rate_limit_quota.v3.BucketIdOrBuilder> bucketIdBuilder_;
/**
*
* ``BucketId`` for which request the action is applied.
*
*
* .envoy.service.rate_limit_quota.v3.BucketId bucket_id = 1 [(.validate.rules) = { ... }
* @return Whether the bucketId field is set.
*/
public boolean hasBucketId() {
return bucketIdBuilder_ != null || bucketId_ != null;
}
/**
*
* ``BucketId`` for which request the action is applied.
*
* Apply the quota assignment to the bucket.
* Commands the data plane to apply a rate limiting strategy to the bucket.
* The process of applying and expiring the rate limiting strategy is detailed in the
* :ref:`QuotaAssignmentAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* message.
*
*
* .envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction quota_assignment_action = 2;
* @return Whether the quotaAssignmentAction field is set.
*/
@java.lang.Override
public boolean hasQuotaAssignmentAction() {
return bucketActionCase_ == 2;
}
/**
*
* Apply the quota assignment to the bucket.
* Commands the data plane to apply a rate limiting strategy to the bucket.
* The process of applying and expiring the rate limiting strategy is detailed in the
* :ref:`QuotaAssignmentAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* message.
*
*
* .envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction quota_assignment_action = 2;
* @return The quotaAssignmentAction.
*/
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction getQuotaAssignmentAction() {
if (quotaAssignmentActionBuilder_ == null) {
if (bucketActionCase_ == 2) {
return (io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction) bucketAction_;
}
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.getDefaultInstance();
} else {
if (bucketActionCase_ == 2) {
return quotaAssignmentActionBuilder_.getMessage();
}
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction.getDefaultInstance();
}
}
/**
*
* Apply the quota assignment to the bucket.
* Commands the data plane to apply a rate limiting strategy to the bucket.
* The process of applying and expiring the rate limiting strategy is detailed in the
* :ref:`QuotaAssignmentAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* message.
*
* Apply the quota assignment to the bucket.
* Commands the data plane to apply a rate limiting strategy to the bucket.
* The process of applying and expiring the rate limiting strategy is detailed in the
* :ref:`QuotaAssignmentAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* message.
*
* Apply the quota assignment to the bucket.
* Commands the data plane to apply a rate limiting strategy to the bucket.
* The process of applying and expiring the rate limiting strategy is detailed in the
* :ref:`QuotaAssignmentAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* message.
*
* Apply the quota assignment to the bucket.
* Commands the data plane to apply a rate limiting strategy to the bucket.
* The process of applying and expiring the rate limiting strategy is detailed in the
* :ref:`QuotaAssignmentAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* message.
*
* Apply the quota assignment to the bucket.
* Commands the data plane to apply a rate limiting strategy to the bucket.
* The process of applying and expiring the rate limiting strategy is detailed in the
* :ref:`QuotaAssignmentAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* message.
*
* Apply the quota assignment to the bucket.
* Commands the data plane to apply a rate limiting strategy to the bucket.
* The process of applying and expiring the rate limiting strategy is detailed in the
* :ref:`QuotaAssignmentAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* message.
*
* Apply the quota assignment to the bucket.
* Commands the data plane to apply a rate limiting strategy to the bucket.
* The process of applying and expiring the rate limiting strategy is detailed in the
* :ref:`QuotaAssignmentAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.QuotaAssignmentAction>`
* message.
*
* Abandon the bucket.
* Commands the data plane to abandon the bucket.
* The process of abandoning the bucket is described in the :ref:`AbandonAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* message.
*
*
* .envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction abandon_action = 3;
* @return Whether the abandonAction field is set.
*/
@java.lang.Override
public boolean hasAbandonAction() {
return bucketActionCase_ == 3;
}
/**
*
* Abandon the bucket.
* Commands the data plane to abandon the bucket.
* The process of abandoning the bucket is described in the :ref:`AbandonAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* message.
*
*
* .envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction abandon_action = 3;
* @return The abandonAction.
*/
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction getAbandonAction() {
if (abandonActionBuilder_ == null) {
if (bucketActionCase_ == 3) {
return (io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction) bucketAction_;
}
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction.getDefaultInstance();
} else {
if (bucketActionCase_ == 3) {
return abandonActionBuilder_.getMessage();
}
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction.getDefaultInstance();
}
}
/**
*
* Abandon the bucket.
* Commands the data plane to abandon the bucket.
* The process of abandoning the bucket is described in the :ref:`AbandonAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* message.
*
* Abandon the bucket.
* Commands the data plane to abandon the bucket.
* The process of abandoning the bucket is described in the :ref:`AbandonAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* message.
*
* Abandon the bucket.
* Commands the data plane to abandon the bucket.
* The process of abandoning the bucket is described in the :ref:`AbandonAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* message.
*
* Abandon the bucket.
* Commands the data plane to abandon the bucket.
* The process of abandoning the bucket is described in the :ref:`AbandonAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* message.
*
* Abandon the bucket.
* Commands the data plane to abandon the bucket.
* The process of abandoning the bucket is described in the :ref:`AbandonAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* message.
*
* Abandon the bucket.
* Commands the data plane to abandon the bucket.
* The process of abandoning the bucket is described in the :ref:`AbandonAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* message.
*
* Abandon the bucket.
* Commands the data plane to abandon the bucket.
* The process of abandoning the bucket is described in the :ref:`AbandonAction
* <envoy_v3_api_msg_service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction>`
* message.
*
*
* .envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction abandon_action = 3;
*/
private com.google.protobuf.SingleFieldBuilderV3<
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction, io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction.Builder, io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonActionOrBuilder>
getAbandonActionFieldBuilder() {
if (abandonActionBuilder_ == null) {
if (!(bucketActionCase_ == 3)) {
bucketAction_ = io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction.getDefaultInstance();
}
abandonActionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction, io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction.Builder, io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonActionOrBuilder>(
(io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction.AbandonAction) bucketAction_,
getParentForChildren(),
isClean());
bucketAction_ = null;
}
bucketActionCase_ = 3;
onChanged();;
return abandonActionBuilder_;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
}
// @@protoc_insertion_point(builder_scope:envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction)
}
// @@protoc_insertion_point(class_scope:envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction)
private static final io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction DEFAULT_INSTANCE;
static {
DEFAULT_INSTANCE = new io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction();
}
public static io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static final com.google.protobuf.Parser
PARSER = new com.google.protobuf.AbstractParser() {
@java.lang.Override
public BucketAction parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new BucketAction(input, extensionRegistry);
}
};
public static com.google.protobuf.Parser parser() {
return PARSER;
}
@java.lang.Override
public com.google.protobuf.Parser getParserForType() {
return PARSER;
}
@java.lang.Override
public io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.BucketAction getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
}
public static final int BUCKET_ACTION_FIELD_NUMBER = 1;
private java.util.List bucketAction_;
/**
*
* An ordered list of actions to be applied to the buckets. The actions are applied in the
* given order, from top to bottom.
*