RateLimitingPolicyGroupBy.java
/*
* GovWay - A customizable API Gateway
* https://govway.org
*
* Copyright (c) 2005-2024 Link.it srl (https://link.it).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3, as published by
* the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.openspcoop2.core.config.rs.server.model;
import java.util.List;
import javax.validation.constraints.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.fasterxml.jackson.annotation.JsonProperty;
import javax.validation.Valid;
public class RateLimitingPolicyGroupBy {
@Schema(description = "")
private Boolean azione = false;
@Schema(description = "")
private Boolean richiedente = false;
@Schema(example = "[\"subject\",\"issuer\"]", description = "")
private List<TokenClaimEnum> token = null;
@Schema(description = "")
private RateLimitingChiaveEnum chiaveTipo = null;
@Schema(description = "La semantica cambia in funzione del tipo: * header-based: nome dell'header * url-based: espressione regolare da applicare alla url di invocazione * form-based: nome del parametro della url * soap-action-based: in questa modalità questo parametro non viene utilizzato * content-based: xpath o json path da applicare sul contenuto * indirizzo-ip: indirizzo ip del socket * indirizzo-ip-forwarded: indirizzo ip inoltrato via header http * plugin-based: tipo del plugin")
/**
* La semantica cambia in funzione del tipo: * header-based: nome dell'header * url-based: espressione regolare da applicare alla url di invocazione * form-based: nome del parametro della url * soap-action-based: in questa modalità questo parametro non viene utilizzato * content-based: xpath o json path da applicare sul contenuto * indirizzo-ip: indirizzo ip del socket * indirizzo-ip-forwarded: indirizzo ip inoltrato via header http * plugin-based: tipo del plugin
**/
private String chiaveNome = null;
/**
* Get azione
* @return azione
**/
@JsonProperty("azione")
@Valid
public Boolean isAzione() {
return this.azione;
}
public void setAzione(Boolean azione) {
this.azione = azione;
}
public RateLimitingPolicyGroupBy azione(Boolean azione) {
this.azione = azione;
return this;
}
/**
* Get richiedente
* @return richiedente
**/
@JsonProperty("richiedente")
@Valid
public Boolean isRichiedente() {
return this.richiedente;
}
public void setRichiedente(Boolean richiedente) {
this.richiedente = richiedente;
}
public RateLimitingPolicyGroupBy richiedente(Boolean richiedente) {
this.richiedente = richiedente;
return this;
}
/**
* Get token
* @return token
**/
@JsonProperty("token")
@Valid
public List<TokenClaimEnum> getToken() {
return this.token;
}
public void setToken(List<TokenClaimEnum> token) {
this.token = token;
}
public RateLimitingPolicyGroupBy token(List<TokenClaimEnum> token) {
this.token = token;
return this;
}
public RateLimitingPolicyGroupBy addTokenItem(TokenClaimEnum tokenItem) {
this.token.add(tokenItem);
return this;
}
/**
* Get chiaveTipo
* @return chiaveTipo
**/
@JsonProperty("chiave_tipo")
@Valid
public RateLimitingChiaveEnum getChiaveTipo() {
return this.chiaveTipo;
}
public void setChiaveTipo(RateLimitingChiaveEnum chiaveTipo) {
this.chiaveTipo = chiaveTipo;
}
public RateLimitingPolicyGroupBy chiaveTipo(RateLimitingChiaveEnum chiaveTipo) {
this.chiaveTipo = chiaveTipo;
return this;
}
/**
* La semantica cambia in funzione del tipo: * header-based: nome dell'header * url-based: espressione regolare da applicare alla url di invocazione * form-based: nome del parametro della url * soap-action-based: in questa modalità questo parametro non viene utilizzato * content-based: xpath o json path da applicare sul contenuto * indirizzo-ip: indirizzo ip del socket * indirizzo-ip-forwarded: indirizzo ip inoltrato via header http * plugin-based: tipo del plugin
* @return chiaveNome
**/
@JsonProperty("chiave_nome")
@Valid
@Size(max=255) public String getChiaveNome() {
return this.chiaveNome;
}
public void setChiaveNome(String chiaveNome) {
this.chiaveNome = chiaveNome;
}
public RateLimitingPolicyGroupBy chiaveNome(String chiaveNome) {
this.chiaveNome = chiaveNome;
return this;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class RateLimitingPolicyGroupBy {\n");
sb.append(" azione: ").append(RateLimitingPolicyGroupBy.toIndentedString(this.azione)).append("\n");
sb.append(" richiedente: ").append(RateLimitingPolicyGroupBy.toIndentedString(this.richiedente)).append("\n");
sb.append(" token: ").append(RateLimitingPolicyGroupBy.toIndentedString(this.token)).append("\n");
sb.append(" chiaveTipo: ").append(RateLimitingPolicyGroupBy.toIndentedString(this.chiaveTipo)).append("\n");
sb.append(" chiaveNome: ").append(RateLimitingPolicyGroupBy.toIndentedString(this.chiaveNome)).append("\n");
sb.append("}");
return sb.toString();
}
/**
* Convert the given object to string with each line indented by 4 spaces
* (except the first line).
*/
private static String toIndentedString(java.lang.Object o) {
if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n ");
}
}