Sha256: 8d8b167016fc095f2069b9e317394ab55d20ba94d6ea0c100976e48e954daafb

Contents?: true

Size: 1.57 KB

Versions: 3

Compression:

Stored size: 1.57 KB

Contents

# frozen_string_literal: true

require 'yori/schema/v3/header'
require 'yori/schema/v3/media_type'
require 'yori/schema/v3/link'

module Yori
  module Schema
    module V3
      # Response: Describes a single response from an API Operation, including design-time, static links to operations based on the response.
      class Response < Yori::SchemaBase
        # @!method description
        #   REQUIRED. A short description of the response. CommonMark syntax MAY be used for rich text representation.
        fields :description
        # @!method headers
        #   Maps a header name to its definition. RFC7230 states header names are case insensitive.
        #   If a response header is defined with the name "Content-Type", it SHALL be ignored.
        hash_field_block :headers, :header, Yori::Schema::V3::Header
        # @!method content
        #   A map containing descriptions of potential response payloads. The key is a media type or media type range and the value describes it.
        #   For responses that match multiple keys, only the most specific key is applicable. e.g. text/plain overrides text/*
        hash_field_block :content, :content_type, Yori::Schema::V3::MediaType
        # @!method links
        #   A map of operations links that can be followed from the response.
        #   The key of the map is a short name for the link, following the naming constraints of the names for Component Objects.
        hash_field_block :links, :link, Yori::Schema::V3::Link

        def validate!
          validate_require_fields!('description')
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
yori-0.1.2 lib/yori/schema/v3/response.rb
yori-0.1.1 lib/yori/schema/v3/response.rb
yori-0.1.0 lib/yori/schema/v3/response.rb