package picatrix.mason;

// TODO this doesnt really make sense as enum, should deprecate enum HTTPVerb {

GET = 1;
PUT = 2;
PATCH = 3;
DELETE = 4;
POST = 5;

}

message Self {

optional string href = 1;
optional string title = 2;

}

message Up {

optional string href = 1;
optional string title = 2;

}

message Filter {

optional string href = 1;
required HTTPVerb method = 2 [default = GET];
required bool isHrefTemplate = 3 [default = true];
optional string title = 4;

extensions 10 to 19;

}

message Create {

optional string href = 1;
required HTTPVerb method = 2 [default = POST];
optional string title = 3;
optional string encoding = 4;

extensions 10 to 19;

}

message Edit {

optional string href = 1;
required HTTPVerb method = 2 [default = PATCH];
optional string title = 3;
optional string encoding = 4;

extensions 10 to 19;

}

message Remove {

optional string href = 1;
required HTTPVerb method = 2 [default = DELETE];
optional string title = 3;

extensions 10 to 19;

}

// when viewing an item directly, you see // all available controls for it message Controls {

optional Self self = 2;
optional Up up = 3;
optional Edit edit = 4;
optional Remove remove = 5;
optional Create create = 6;
optional Filter filter = 7;

}