class Aws::Api::Builder

def build_operation(name, definition, shapes, docs)

def build_operation(name, definition, shapes, docs)
  http = definition['http'] || {}
  op = Seahorse::Model::Operation.new
  op.name = definition['name'] || name
  op.http_method = http['method']
  op.http_request_uri = http['requestUri'] || '/'
  op.documentation = docs.operation_docs(name)
  op.deprecated = !!definition['deprecated']
  op.endpoint_operation = !!definition['endpointoperation']
  op.input = shapes.shape_ref(definition['input'])
  op.output = shapes.shape_ref(definition['output'])
  op['authtype'] = definition['authtype'] unless definition['authtype'].nil?
  (definition['errors'] || []).each do |error|
    op.errors << shapes.shape_ref(error)
  end
  if definition['endpointdiscovery']
    op.endpoint_discovery = {}
    definition['endpointdiscovery'].each do |k, v|
      op.endpoint_discovery[k] = v
    end
  elsif definition['endpoint']
    op.endpoint_pattern = {}
    definition['endpoint'].each do |k, v|
      op.endpoint_pattern[k] = v
    end
  end
  op
end