in build_tools/aws-sdk-code-generator/lib/aws-sdk-code-generator/views/client_api_module.rb [204:265]
def operations
@service.api['operations'].map do |operation_name, operation|
Operation.new.tap do |o|
o.name = operation['name'] || operation_name
o.method_name = underscore(operation_name)
o.http_method = operation['http']['method']
o.http_request_uri = operation['http']['requestUri']
o.http_checksum_required = true if operation['httpChecksumRequired']
if operation.key?('httpChecksum')
operation['httpChecksum']['requestAlgorithmMember'] = underscore(operation['httpChecksum']['requestAlgorithmMember']) if operation['httpChecksum']['requestAlgorithmMember']
operation['httpChecksum']['requestValidationModeMember'] = underscore(operation['httpChecksum']['requestValidationModeMember']) if operation['httpChecksum']['requestValidationModeMember']
o.http_checksum = operation['httpChecksum'].inject([]) do |a, (k, v)|
a << { key: k.inspect, value: v.inspect }
a
end
end
if operation.key?('requestcompression')
o.request_compression = operation['requestcompression'].each_with_object([]) do |(k, v), arr|
arr << { key: k.inspect, value: v.inspect }
end
end
%w(input output).each do |key|
if operation[key]
o.shape_references << "o.#{key} = #{operation_ref(operation[key])}"
else
o.shape_references << "o.#{key} = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))"
end
end
o.error_shape_names = operation.fetch('errors', []).map {|e| e['shape'] }
o.deprecated = true if operation['deprecated']
o.endpoint_operation = true if operation['endpointoperation']
if operation.key?('endpointdiscovery')
o.endpoint_discovery_available = true
o.endpoint_discovery = operation['endpointdiscovery'].inject([]) do |a, (k, v)|
a << { key: k.inspect, value: v.inspect }
a
end
elsif operation.key?('endpoint')
o.endpoint_trait = true
o.endpoint_pattern = operation['endpoint'].inject([]) do |a, (k, v)|
a << { key: k.inspect, value: v.inspect }
a
end
end
o.authorizer = operation['authorizer'] if operation.key?('authorizer')
o.authtype = operation['authtype'] if operation.key?('authtype')
o.unsigned_payload = operation['unsignedPayload'] if operation.key?('unsignedPayload')
o.auth = operation['auth'] if operation.key?('auth')
o.require_apikey = operation['requiresApiKey'] if operation.key?('requiresApiKey')
o.pager = pager(operation_name)
o.async = async(operation)
end
end
end