io.github.springwolf.asyncapi.v3.model.security_scheme.SecurityScheme Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of springwolf-asyncapi Show documentation
Show all versions of springwolf-asyncapi Show documentation
Springwolf implementation of the AsyncApi specification
// SPDX-License-Identifier: Apache-2.0
package io.github.springwolf.asyncapi.v3.model.security_scheme;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.github.springwolf.asyncapi.v3.model.ExtendableObject;
import io.github.springwolf.asyncapi.v3.model.Reference;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
* Defines a security scheme that can be used by the operations. Supported schemes are:
*
* - User/Password.
* - API key (either as user or as password).
* - X.509 certificate.
* - End-to-end encryption (either symmetric or asymmetric).
* - HTTP authentication.
* - HTTP API key.
* - OAuth2's common flows (Implicit, Resource Owner Protected Credentials, Client Credentials and Authorization Code) as defined in RFC6749.
* - OpenID Connect Discovery.
* - SASL (Simple Authentication and Security Layer) as defined in RFC4422.
*
*
* @see Schema Scheme Object
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SecurityScheme extends ExtendableObject implements Reference {
/**
* REQUIRED. The type of the security scheme. Valid values are
*
* - "userPassword"
* - "apiKey"
* - "X509"
* - "symmetricEncryption"
* - "asymmetricEncryption"
* - "httpApiKey"
* - "http"
* - "oauth2"
* - "openIdConnect"
* - "plain"
* - "scramSha256"
* - "scramSha512"
* - "gssapi"
*
*/
@NotNull
@JsonProperty("type")
private SecurityType type;
/**
* A short description for security scheme. CommonMark syntax MAY be
* used for rich text representation.
*/
@JsonProperty(value = "description")
private String description;
@JsonIgnore
private String ref;
@Override
public String getRef() {
return ref;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy