syntax = "proto3";
package POGOProtos.Networking.Envelopes;

import public "POGOProtos.Networking.Requests.proto";

message AuthTicket {
	bytes start = 1;
	uint64 expire_timestamp_ms = 2;
	bytes end = 3;
}
message RequestEnvelope {
	int32 status_code = 1;

	uint64 request_id = 3;
	repeated .POGOProtos.Networking.Requests.Request requests = 4;

	.POGOProtos.Networking.Envelopes.Unknown6 unknown6 = 6;
	double latitude = 7;
	double longitude = 8;
	double altitude = 9;
	AuthInfo auth_info = 10;
	.POGOProtos.Networking.Envelopes.AuthTicket auth_ticket = 11;
	int64 unknown12 = 12;

	message AuthInfo {
		string provider = 1;
		JWT token = 2;

		message JWT {
			string contents = 1;
			int32 unknown2  = 2;
		}
	}
}
message ResponseEnvelope {
	int32 status_code = 1;
	uint64 request_id = 2;
	string api_url = 3;

	.POGOProtos.Networking.Envelopes.Unknown6Response unknown6 = 6;
	.POGOProtos.Networking.Envelopes.AuthTicket auth_ticket = 7;

	repeated bytes returns = 100;
	string error = 101;

	message Unknown7 {
		bytes unknown71 = 1;
		int64 unknown72 = 2;
		bytes unknown73 = 3;
	}
}
message Unknown6 {
	int32 unknown1 = 1; //6
	Unknown2 unknown2 = 2;

	message Unknown2 {
		bytes unknown1 = 1;
	}
}
message Unknown6Response {
	int32 unknown1 = 1; //6
	Unknown2 unknown2 = 2;

	message Unknown2 {
		uint64 unknown1 = 1;
	}
}
