class Aws::ProcessCredentials

def credentials_from_process(proc_invocation)

def credentials_from_process(proc_invocation)
  begin
    raw_out = `#{proc_invocation}`
    process_status = $?
  rescue Errno::ENOENT
    raise Errors::InvalidProcessCredentialsPayload.new("Could not find process #{proc_invocation}")
  end
  if process_status.success?
    begin
      creds_json = Aws::Json.load(raw_out)
    rescue Aws::Json::ParseError
      raise Errors::InvalidProcessCredentialsPayload.new("Invalid JSON response")
    end
    payload_version = creds_json['Version']
    if payload_version == 1
      _parse_payload_format_v1(creds_json)
    else
      raise Errors::InvalidProcessCredentialsPayload.new("Invalid version #{payload_version} for credentials payload")
    end
  else
    raise Errors::InvalidProcessCredentialsPayload.new('credential_process provider failure, the credential process had non zero exit status and failed to provide credentials')
  end
end