2024-12-15 19:51:02 +00:00
|
|
|
// Extracted from: Spotify 1.2.52.442 (windows)
|
2021-06-19 20:29:48 +00:00
|
|
|
|
|
|
|
syntax = "proto2";
|
|
|
|
|
|
|
|
package spotify.playlist_permission.proto;
|
|
|
|
|
|
|
|
option java_multiple_files = true;
|
|
|
|
option optimize_for = CODE_SIZE;
|
|
|
|
option java_package = "com.spotify.playlist.proto";
|
|
|
|
|
|
|
|
message Permission {
|
|
|
|
optional bytes revision = 1;
|
|
|
|
optional PermissionLevel permission_level = 2;
|
|
|
|
}
|
|
|
|
|
2024-12-15 19:51:02 +00:00
|
|
|
message GrantableLevels {
|
|
|
|
repeated PermissionLevel base = 1;
|
|
|
|
repeated PermissionLevel member = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
message AttributeCapabilities {
|
|
|
|
optional bool can_edit = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message ListAttributeCapabilities {
|
|
|
|
optional AttributeCapabilities name = 1;
|
|
|
|
optional AttributeCapabilities description = 2;
|
|
|
|
optional AttributeCapabilities picture = 3;
|
|
|
|
optional AttributeCapabilities collaborative = 4;
|
|
|
|
optional AttributeCapabilities deleted_by_owner = 6;
|
|
|
|
optional AttributeCapabilities ai_curation_reference_id = 15;
|
|
|
|
}
|
|
|
|
|
2021-06-19 20:29:48 +00:00
|
|
|
message Capabilities {
|
|
|
|
optional bool can_view = 1;
|
|
|
|
optional bool can_administrate_permissions = 2;
|
|
|
|
repeated PermissionLevel grantable_level = 3;
|
|
|
|
optional bool can_edit_metadata = 4;
|
|
|
|
optional bool can_edit_items = 5;
|
2021-12-10 19:33:43 +00:00
|
|
|
optional bool can_cancel_membership = 6;
|
2024-12-15 19:51:02 +00:00
|
|
|
optional GrantableLevels grantable_levels = 7;
|
|
|
|
optional ListAttributeCapabilities list_attribute_capabilities = 8;
|
2021-06-19 20:29:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
message CapabilitiesMultiRequest {
|
|
|
|
repeated CapabilitiesRequest request = 1;
|
|
|
|
optional string fallback_username = 2;
|
|
|
|
optional string fallback_user_id = 3;
|
|
|
|
optional string fallback_uri = 4;
|
|
|
|
}
|
|
|
|
|
2024-12-15 19:51:02 +00:00
|
|
|
message CapabilitiesRequestOptions {
|
|
|
|
optional bool can_view_only = 1;
|
|
|
|
}
|
|
|
|
|
2021-06-19 20:29:48 +00:00
|
|
|
message CapabilitiesRequest {
|
|
|
|
optional string username = 1;
|
|
|
|
optional string user_id = 2;
|
|
|
|
optional string uri = 3;
|
|
|
|
optional bool user_is_owner = 4;
|
2024-12-15 19:51:02 +00:00
|
|
|
optional string permission_grant_token = 5;
|
|
|
|
optional CapabilitiesRequestOptions request_options = 6;
|
2021-06-19 20:29:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
message CapabilitiesMultiResponse {
|
|
|
|
repeated CapabilitiesResponse response = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message CapabilitiesResponse {
|
|
|
|
optional ResponseStatus status = 1;
|
|
|
|
optional Capabilities capabilities = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
message SetPermissionLevelRequest {
|
|
|
|
optional PermissionLevel permission_level = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message SetPermissionResponse {
|
|
|
|
optional Permission resulting_permission = 1;
|
|
|
|
}
|
|
|
|
|
2021-12-10 19:33:43 +00:00
|
|
|
message GetMemberPermissionsResponse {
|
|
|
|
map<string, Permission> member_permissions = 1;
|
|
|
|
}
|
|
|
|
|
2021-06-19 20:29:48 +00:00
|
|
|
message Permissions {
|
|
|
|
optional Permission base_permission = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message PermissionState {
|
|
|
|
optional Permissions permissions = 1;
|
|
|
|
optional Capabilities capabilities = 2;
|
|
|
|
optional bool is_private = 3;
|
|
|
|
optional bool is_collaborative = 4;
|
|
|
|
}
|
|
|
|
|
|
|
|
message PermissionStatePub {
|
|
|
|
optional PermissionState permission_state = 1;
|
|
|
|
}
|
|
|
|
|
2021-12-10 19:33:43 +00:00
|
|
|
message PermissionGrantOptions {
|
|
|
|
optional Permission permission = 1;
|
|
|
|
optional int64 ttl_ms = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
message PermissionGrant {
|
|
|
|
optional string token = 1;
|
|
|
|
optional PermissionGrantOptions permission_grant_options = 2;
|
|
|
|
}
|
|
|
|
|
2024-12-15 19:51:02 +00:00
|
|
|
message PermissionGrantDetails {
|
|
|
|
optional bool permission_level_downgraded = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message PermissionGrantDescription {
|
|
|
|
enum ClaimFailReason {
|
|
|
|
CLAIM_FAIL_REASON_UNSPECIFIED = 0;
|
|
|
|
CLAIM_FAIL_REASON_ANONYMOUS = 1;
|
|
|
|
CLAIM_FAIL_REASON_NO_GRANT_FOUND = 2;
|
|
|
|
CLAIM_FAIL_REASON_GRANT_EXPIRED = 3;
|
|
|
|
}
|
|
|
|
|
|
|
|
optional PermissionGrantOptions permission_grant_options = 1;
|
|
|
|
optional ClaimFailReason claim_fail_reason = 2;
|
|
|
|
optional bool is_effective = 3;
|
|
|
|
optional Capabilities capabilities = 4;
|
|
|
|
repeated PermissionGrantDetails details = 5;
|
|
|
|
}
|
|
|
|
|
2021-12-10 19:33:43 +00:00
|
|
|
message ClaimPermissionGrantResponse {
|
|
|
|
optional Permission user_permission = 1;
|
|
|
|
optional Capabilities capabilities = 2;
|
2024-12-15 19:51:02 +00:00
|
|
|
repeated PermissionGrantDetails details = 3;
|
2021-12-10 19:33:43 +00:00
|
|
|
}
|
|
|
|
|
2021-06-19 20:29:48 +00:00
|
|
|
message ResponseStatus {
|
|
|
|
optional int32 status_code = 1;
|
|
|
|
optional string status_message = 2;
|
|
|
|
}
|
|
|
|
|
2024-12-15 19:51:02 +00:00
|
|
|
message PermissionIdentifier {
|
|
|
|
required PermissionIdentifierKind kind = 1;
|
|
|
|
optional string user_id = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
message PermissionEntry {
|
|
|
|
optional PermissionIdentifier identifier = 1;
|
|
|
|
optional Permission permission = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
message CreateInitialPermissions {
|
|
|
|
repeated PermissionEntry permission_entry = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message CreateInitialPermissionsResponse {
|
|
|
|
repeated PermissionEntry permission_entry = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message DefaultOwnerCapabilitiesResponse {
|
|
|
|
optional Capabilities capabilities = 1;
|
|
|
|
}
|
|
|
|
|
2021-06-19 20:29:48 +00:00
|
|
|
enum PermissionLevel {
|
|
|
|
UNKNOWN = 0;
|
|
|
|
BLOCKED = 1;
|
|
|
|
VIEWER = 2;
|
|
|
|
CONTRIBUTOR = 3;
|
2024-12-15 19:51:02 +00:00
|
|
|
MADE_FOR = 4;
|
2021-06-19 20:29:48 +00:00
|
|
|
}
|
2024-12-15 19:51:02 +00:00
|
|
|
|
|
|
|
enum PermissionIdentifierKind {
|
|
|
|
PERMISSION_IDENTIFIER_KIND_UNSPECIFIED = 0;
|
|
|
|
PERMISSION_IDENTIFIER_KIND_BASE = 1;
|
|
|
|
PERMISSION_IDENTIFIER_KIND_MEMBER = 2;
|
|
|
|
PERMISSION_IDENTIFIER_KIND_ABUSE = 3;
|
|
|
|
PERMISSION_IDENTIFIER_KIND_PROFILE = 4;
|
|
|
|
PERMISSION_IDENTIFIER_KIND_AUTHORIZED = 5;
|
|
|
|
}
|
|
|
|
|