All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.springwolf.asyncapi.v3.model.security_scheme.SecurityScheme Maven / Gradle / Ivy

There is a newer version: 1.9.0
Show newest version
// 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