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

io.github.springwolf.asyncapi.v3.model.info.Info 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.info;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.github.springwolf.asyncapi.v3.model.ExtendableObject;
import io.github.springwolf.asyncapi.v3.model.ExternalDocumentation;
import io.github.springwolf.asyncapi.v3.model.Tag;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * The object provides metadata about the API. The metadata can be used by the clients if needed.
 *
 * @see Info
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class Info extends ExtendableObject {

    /**
     * Required. The title of the application.
     */
    @NotNull
    @JsonProperty(value = "title")
    private String title;

    /**
     * Required. Provides the version of the application API (not to be confused with the specification version).
     */
    @NotNull
    @JsonProperty(value = "version")
    private String version;

    /**
     * A short description of the application. CommonMark syntax can be
     * used for rich text representation.
     */
    @JsonProperty(value = "description")
    private String description;

    /**
     * A URL to the Terms of Service for the API. MUST be in the format of a URL.
     */
    @JsonProperty(value = "termsOfService")
    private String termsOfService;

    /**
     * The contact information for the exposed API.
     */
    @JsonProperty(value = "contact")
    private Contact contact;

    /**
     * The license information for the exposed API.
     */
    @JsonProperty(value = "license")
    private License license;

    /**
     * A list of tags for application API documentation control. Tags can be used for logical grouping of applications.
     */
    @JsonProperty(value = "tags")
    private List tags;

    /**
     * Additional external documentation of the exposed API.
     */
    @JsonProperty(value = "externalDocs")
    private ExternalDocumentation externalDocs;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy