syntax = "proto3"; package google.rpc.context; import "google/protobuf/any.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; option cc_enable_arenas = true; option go_package = "google.golang.org/genproto/googleapis/rpc/context/attribute_context;attribute_context"; option java_multiple_files = true; option java_outer_classname = "AttributeContextProto"; option java_package = "com.google.rpc.context"; message AttributeContext { message Peer { string ip = 1; int64 port = 2; map labels = 6; string principal = 7; string region_code = 8; } message Api { string service = 1; string operation = 2; string protocol = 3; string version = 4; } message Auth { string principal = 1; repeated string audiences = 2; string presenter = 3; google.protobuf.Struct claims = 4; repeated string access_levels = 5; } message Request { string id = 1; string method = 2; map headers = 3; string path = 4; string host = 5; string scheme = 6; string query = 7; google.protobuf.Timestamp time = 9; int64 size = 10; string protocol = 11; string reason = 12; Auth auth = 13; } message Response { int64 code = 1; int64 size = 2; map headers = 3; google.protobuf.Timestamp time = 4; google.protobuf.Duration backend_latency = 5; } message Resource { string service = 1; string name = 2; string type = 3; map labels = 4; string uid = 5; map annotations = 6; string display_name = 7; google.protobuf.Timestamp create_time = 8; google.protobuf.Timestamp update_time = 9; google.protobuf.Timestamp delete_time = 10; string etag = 11; string location = 12; } Peer origin = 7; Peer source = 1; Peer destination = 2; Request request = 3; Response response = 4; Resource resource = 5; Api api = 6; repeated google.protobuf.Any extensions = 8; }