Sha256: c4165974086081c9065fd8e57fb601febff77c1342cd07c7a970928d8b11b58c

Contents?: true

Size: 1.89 KB

Versions: 55

Compression:

Stored size: 1.89 KB

Contents

module Seahorse
  module Model
    class Operation

      # @param [Hash] definition
      # @option options [ShapeMap] :shape_map
      def initialize(definition = {}, options = {})
        @definition = definition
        @shape_map = options[:shape_map] || ShapeMap.new
        @name = definition['name']
        @input = shape_for(definition['input']) if definition['input']
        @output = shape_for(definition['output']) if definition['output']
        @deprecated = !!definition['deprecated']
        @documentation = definition['documentation']
        @paging = definition['paging'] || {}
      end

      # @return [String]
      attr_reader :name

      # @return [String]
      attr_reader :http_method

      # @return [String]
      attr_reader :http_request_uri

      # @return [String<HTML>, nil]
      attr_reader :documentation

      # @return [Shape, nil]
      attr_reader :input

      # @return [Shape, nil]
      attr_reader :output

      # @return [Hash]
      attr_reader :paging

      # @return [Hash]
      attr_reader :definition

      # @return [String]
      def http_method
        (@definition['http'] || {})['method'] || 'POST'
      end

      # @return [String]
      def http_request_uri
        (@definition['http'] || {})['requestUri'] || '/'
      end

      # @return [Boolean] Returns `true` if this API operation is deprecated.
      def deprecated?
        !!@definition['deprecated']
      end

      # @return [Enumerator] Returns an enumerator that yields error
      #   shapes.
      def errors
        errors = (definition['errors'] || [])
        errors = errors.map { |error| shape_for(error) }
        errors.enum_for(:each)
      end

      private

      def shape_for(definition)
        if definition.key?('shape')
          @shape_map.shape(definition)
        else
          Shapes::Shape.new(definition, shape_map: @shape_map)
        end
      end

    end
  end
end

Version data entries

55 entries across 55 versions & 1 rubygems

Version Path
aws-sdk-core-2.0.48 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.47 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.46 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.45 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.44 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.43 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.42 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.41 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.40 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.39 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.38 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.37 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.36 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.35 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.34 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.33 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.32 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.31 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.30 lib/seahorse/model/operation.rb
aws-sdk-core-2.0.29 lib/seahorse/model/operation.rb