operations

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