io.github.springwolf.asyncapi.v3.model.operation.OperationTraits 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.operation;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.github.springwolf.asyncapi.v3.bindings.OperationBinding;
import io.github.springwolf.asyncapi.v3.model.ExtendableObject;
import io.github.springwolf.asyncapi.v3.model.ExternalDocumentation;
import io.github.springwolf.asyncapi.v3.model.Reference;
import io.github.springwolf.asyncapi.v3.model.Tag;
import io.github.springwolf.asyncapi.v3.model.security_scheme.SecurityScheme;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Map;
/**
* Describes a trait that MAY be applied to an Operation Object. This object MAY contain any property from the
* Operation Object, except the action, channel and traits ones.
*
* If you're looking to apply traits to a message, see the Message Trait Object.
*
* @see Operation Trait Object
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class OperationTraits extends ExtendableObject implements Reference {
/**
* A human-friendly title for the operation.
*/
@JsonProperty(value = "title")
private String title;
/**
* A short summary of what the operation is about.
*/
@JsonProperty(value = "summary")
private String summary;
/**
* A verbose explanation of the operation. CommonMark syntax can be
* used for rich text representation.
*/
@JsonProperty(value = "description")
private String description;
/**
* A declaration of which security schemes are associated with this operation. Only one of the security scheme
* objects MUST be satisfied to authorize an operation. In cases where Server Security also applies, it MUST also be satisfied.
*/
@JsonProperty(value = "security")
private SecurityScheme security;
/**
* A list of tags for logical grouping and categorization of operations.
*/
@JsonProperty(value = "tags")
private List tags;
/**
* Additional external documentation for this operation.
*/
@JsonProperty(value = "externalDocs")
private ExternalDocumentation externalDocs;
/**
* A map where the keys describe the name of the protocol and the values describe protocol-specific definitions
* for the operation.
*/
@JsonProperty(value = "bindings")
private Map bindings;
@JsonIgnore
private String ref;
@Override
public String getRef() {
return ref;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy