Skip to content

Common types

While each integration type has it's own gRPC methods and data-types that must be conformed to, there are certain data types that are shared across all integrations. These types are outline below.

For up-to-date list, please refer to the latest protocol definitions.

Errors

Provides a way to ensure detailed information about errors can be sent back to Accedo One

common/errors.proto
syntax = "proto3";
package common;

import "google/protobuf/any.proto";
import "external/common/types.proto";

option java_package = "tv.accedo.one.core.proto.common";

message ErrorDetails {
    string requestId = 1;

    // Error message arguments
    map<string, MessageArgValue> messageArgs = 2;

    // These two fields are only used for debugging purposes and will not be exposed publicly
    string cause = 100;
    string stack = 101;

    google.protobuf.Any details = 1000;

    message MessageArgValue {
        oneof value {
            string string = 1;
            Strings strings = 2;

            int32 integer = 3;
            Integers integers = 4;
        }
    }
}

message ErrorDetailsStringMap {
    map<string, string> errors = 1;
}

message ErrorDetailsStringsMap {
    map<string, Values> errors = 1;

    message Values {
        repeated string values = 1;
    }
}

Integration Config

Configuration parameters are sent to each integration service in a uniform manner. These parameters are abstracted with the following types.

common/integration.proto
syntax = "proto3";
package common;

import "google/protobuf/timestamp.proto";
import "external/common/types.proto";

option java_package = "tv.accedo.one.core.proto.common";


message IntegrationConfiguration {
    map<string, CustomField> values = 1;
}

message IntegrationStatusRequest {

}

message IntegrationStatusResponse {

    string integrationId = 1;
    google.protobuf.Timestamp timestamp = 2;

    Status status = 10;
    map<string, ComponentStatusDetails> componentStatus = 11;

    message ComponentStatusDetails {
        string name = 1;
        IntegrationStatusResponse.Status status = 2;
        string details = 3;
    }

    enum Status {
        UNKNOWN = 0;
        UP = 1;
        DOWN = 2;
    }

}

Custom Types

While Protocol Buffers are versatile in their basic form, often there is a need for more specialized types, especially in a more complex scenarios (such as oneof repeated types). These are the types that may be shared by multiple integrations.

common/types.proto
syntax = "proto3";
package common;

import "google/protobuf/timestamp.proto";
import "google/protobuf/duration.proto";

option java_package = "tv.accedo.one.core.proto.common";

message Strings {
    repeated string strings = 1;
}

message Integers {
    repeated int64 integers = 1;
}

message Timestamps {
    repeated google.protobuf.Timestamp timestamps = 1;
}

message CustomField {
    oneof value {
        string string = 1;
        Strings strings = 2;

        int64 integer = 3;
        Integers integers = 4;

        google.protobuf.Timestamp timestamp = 5;
        Timestamps timestamps = 6;

        google.protobuf.Duration duration = 7;

        bool boolean = 8;
    }
}

Languages

Multiple types of integrations support language-specific information. This is the abstraction of known languages.

common/languages.proto
syntax = "proto3";
package common;

option java_package = "tv.accedo.one.core.proto.common";

enum LanguageCode {
    LANGUAGE_CODE_UNKNOWN = 0;

    // Afar
    LANGUAGE_CODE_AA = 10;
    // Abkhazian
    LANGUAGE_CODE_AB = 11;
    // Avestan
    LANGUAGE_CODE_AE = 12;
    // Afrikaans
    LANGUAGE_CODE_AF = 13;
    // Akan
    LANGUAGE_CODE_AK = 14;
    // Amharic
    LANGUAGE_CODE_AM = 15;
    // Aragonese
    LANGUAGE_CODE_AN = 16;
    // Arabic
    LANGUAGE_CODE_AR = 17;
    // Assamese
    LANGUAGE_CODE_AS = 18;
    // Avaric
    LANGUAGE_CODE_AV = 19;
    // Aymara
    LANGUAGE_CODE_AY = 20;
    // Azerbaijani
    LANGUAGE_CODE_AZ = 21;
    // Bashkir
    LANGUAGE_CODE_BA = 22;
    // Belarusian
    LANGUAGE_CODE_BE = 23;
    // Bulgarian
    LANGUAGE_CODE_BG = 24;
    // Bihari languages
    LANGUAGE_CODE_BH = 25;
    // Bislama
    LANGUAGE_CODE_BI = 26;
    // Bambara
    LANGUAGE_CODE_BM = 27;
    // Bengali
    LANGUAGE_CODE_BN = 28;
    // Tibetan
    LANGUAGE_CODE_BO = 29;
    // Breton
    LANGUAGE_CODE_BR = 30;
    // Bosnian
    LANGUAGE_CODE_BS = 31;
    // Catalan
    LANGUAGE_CODE_CA = 32;
    // Chechen
    LANGUAGE_CODE_CE = 33;
    // Chamorro
    LANGUAGE_CODE_CH = 34;
    // Corsican
    LANGUAGE_CODE_CO = 35;
    // Cree
    LANGUAGE_CODE_CR = 36;
    // Czech
    LANGUAGE_CODE_CS = 37;
    // Church Slavic
    LANGUAGE_CODE_CU = 38;
    // Chuvash
    LANGUAGE_CODE_CV = 39;
    // Welsh
    LANGUAGE_CODE_CY = 40;
    // Danish
    LANGUAGE_CODE_DA = 41;
    // German
    LANGUAGE_CODE_DE = 42;
    // Maldivian
    LANGUAGE_CODE_DV = 43;
    // Dzongkha
    LANGUAGE_CODE_DZ = 44;
    // Ewe
    LANGUAGE_CODE_EE = 45;
    // Greek
    LANGUAGE_CODE_EL = 46;
    // English
    LANGUAGE_CODE_EN = 47;
    // Esperanto
    LANGUAGE_CODE_EO = 48;
    // Spanish
    LANGUAGE_CODE_ES = 49;
    // Estonian
    LANGUAGE_CODE_ET = 50;
    // Basque
    LANGUAGE_CODE_EU = 51;
    // Persian
    LANGUAGE_CODE_FA = 52;
    // Fulah
    LANGUAGE_CODE_FF = 53;
    // Finnish
    LANGUAGE_CODE_FI = 54;
    // Fijian
    LANGUAGE_CODE_FJ = 55;
    // Faroese
    LANGUAGE_CODE_FO = 56;
    // French
    LANGUAGE_CODE_FR = 57;
    // Western Frisian
    LANGUAGE_CODE_FY = 58;
    // Irish
    LANGUAGE_CODE_GA = 59;
    // Gaelic
    LANGUAGE_CODE_GD = 60;
    // Galician
    LANGUAGE_CODE_GL = 61;
    // Guarani
    LANGUAGE_CODE_GN = 62;
    // Gujarati
    LANGUAGE_CODE_GU = 63;
    // Manx
    LANGUAGE_CODE_GV = 64;
    // Hausa
    LANGUAGE_CODE_HA = 65;
    // Hebrew
    LANGUAGE_CODE_HE = 66;
    // Hindi
    LANGUAGE_CODE_HI = 67;
    // Hiri Motu
    LANGUAGE_CODE_HO = 68;
    // Croatian
    LANGUAGE_CODE_HR = 69;
    // Haitian
    LANGUAGE_CODE_HT = 70;
    // Hungarian
    LANGUAGE_CODE_HU = 71;
    // Armenian
    LANGUAGE_CODE_HY = 72;
    // Herero
    LANGUAGE_CODE_HZ = 73;
    // Interlingua
    LANGUAGE_CODE_IA = 74;
    // Indonesian
    LANGUAGE_CODE_ID = 75;
    // Interlingue
    LANGUAGE_CODE_IE = 76;
    // Igbo
    LANGUAGE_CODE_IG = 77;
    // Sichuan Yi
    LANGUAGE_CODE_II = 78;
    // Inupiaq
    LANGUAGE_CODE_IK = 79;
    // Ido
    LANGUAGE_CODE_IO = 80;
    // Icelandic
    LANGUAGE_CODE_IS = 81;
    // Italian
    LANGUAGE_CODE_IT = 82;
    // Inuktitut
    LANGUAGE_CODE_IU = 83;
    // Japanese
    LANGUAGE_CODE_JA = 84;
    // Javanese
    LANGUAGE_CODE_JV = 85;
    // Georgian
    LANGUAGE_CODE_KA = 86;
    // Kongo
    LANGUAGE_CODE_KG = 87;
    // Kikuyu
    LANGUAGE_CODE_KI = 88;
    // Kuanyama
    LANGUAGE_CODE_KJ = 89;
    // Kazakh
    LANGUAGE_CODE_KK = 90;
    // Kalaallisut
    LANGUAGE_CODE_KL = 91;
    // Central Khmer
    LANGUAGE_CODE_KM = 92;
    // Kannada
    LANGUAGE_CODE_KN = 93;
    // Korean
    LANGUAGE_CODE_KO = 94;
    // Kanuri
    LANGUAGE_CODE_KR = 95;
    // Kashmiri
    LANGUAGE_CODE_KS = 96;
    // Kurdish
    LANGUAGE_CODE_KU = 97;
    // Komi
    LANGUAGE_CODE_KV = 98;
    // Cornish
    LANGUAGE_CODE_KW = 99;
    // Kirghiz
    LANGUAGE_CODE_KY = 100;
    // Latin
    LANGUAGE_CODE_LA = 101;
    // Luxembourgish
    LANGUAGE_CODE_LB = 102;
    // Ganda
    LANGUAGE_CODE_LG = 103;
    // Limburgan
    LANGUAGE_CODE_LI = 104;
    // Lingala
    LANGUAGE_CODE_LN = 105;
    // Lao
    LANGUAGE_CODE_LO = 106;
    // Lithuanian
    LANGUAGE_CODE_LT = 107;
    // Luba-Katanga
    LANGUAGE_CODE_LU = 108;
    // Latvian
    LANGUAGE_CODE_LV = 109;
    // Malagasy
    LANGUAGE_CODE_MG = 110;
    // Marshallese
    LANGUAGE_CODE_MH = 111;
    // Maori
    LANGUAGE_CODE_MI = 112;
    // Macedonian
    LANGUAGE_CODE_MK = 113;
    // Malayalam
    LANGUAGE_CODE_ML = 114;
    // Mongolian
    LANGUAGE_CODE_MN = 115;
    // Marathi
    LANGUAGE_CODE_MR = 116;
    // Malay
    LANGUAGE_CODE_MS = 117;
    // Maltese
    LANGUAGE_CODE_MT = 118;
    // Burmese
    LANGUAGE_CODE_MY = 119;
    // Nauru
    LANGUAGE_CODE_NA = 120;
    // Norwegian Bokmal
    LANGUAGE_CODE_NB = 121;
    // North Ndebele
    LANGUAGE_CODE_ND = 122;
    // Nepali
    LANGUAGE_CODE_NE = 123;
    // Ndonga
    LANGUAGE_CODE_NG = 124;
    // Dutch
    LANGUAGE_CODE_NL = 125;
    // Norwegian Nynorsk
    LANGUAGE_CODE_NN = 126;
    // Norwegian
    LANGUAGE_CODE_NO = 127;
    // South Ndebele
    LANGUAGE_CODE_NR = 128;
    // Navajo
    LANGUAGE_CODE_NV = 129;
    // Chichewa
    LANGUAGE_CODE_NY = 130;
    // Occitan
    LANGUAGE_CODE_OC = 131;
    // Ojibwa
    LANGUAGE_CODE_OJ = 132;
    // Oromo
    LANGUAGE_CODE_OM = 133;
    // Oriya
    LANGUAGE_CODE_OR = 134;
    // Ossetian
    LANGUAGE_CODE_OS = 135;
    // Punjabi
    LANGUAGE_CODE_PA = 136;
    // Pali
    LANGUAGE_CODE_PI = 137;
    // Polish
    LANGUAGE_CODE_PL = 138;
    // Pushto
    LANGUAGE_CODE_PS = 139;
    // Portuguese
    LANGUAGE_CODE_PT = 140;
    // Quechua
    LANGUAGE_CODE_QU = 141;
    // Romansh
    LANGUAGE_CODE_RM = 142;
    // Rundi
    LANGUAGE_CODE_RN = 143;
    // Romanian
    LANGUAGE_CODE_RO = 144;
    // Russian
    LANGUAGE_CODE_RU = 145;
    // Kinyarwanda
    LANGUAGE_CODE_RW = 146;
    // Sanskrit
    LANGUAGE_CODE_SA = 147;
    // Sardinian
    LANGUAGE_CODE_SC = 148;
    // Sindhi
    LANGUAGE_CODE_SD = 149;
    // Northern Sami
    LANGUAGE_CODE_SE = 150;
    // Sango
    LANGUAGE_CODE_SG = 151;
    // Sinhala
    LANGUAGE_CODE_SI = 152;
    // Slovak
    LANGUAGE_CODE_SK = 153;
    // Slovenian
    LANGUAGE_CODE_SL = 154;
    // Samoan
    LANGUAGE_CODE_SM = 155;
    // Shona
    LANGUAGE_CODE_SN = 156;
    // Somali
    LANGUAGE_CODE_SO = 157;
    // Albanian
    LANGUAGE_CODE_SQ = 158;
    // Serbian
    LANGUAGE_CODE_SR = 159;
    // Swati
    LANGUAGE_CODE_SS = 160;
    // Sotho
    LANGUAGE_CODE_ST = 161;
    // Sundanese
    LANGUAGE_CODE_SU = 162;
    // Swedish
    LANGUAGE_CODE_SV = 163;
    // Swahili
    LANGUAGE_CODE_SW = 164;
    // Tamil
    LANGUAGE_CODE_TA = 165;
    // Telugu
    LANGUAGE_CODE_TE = 166;
    // Tajik
    LANGUAGE_CODE_TG = 167;
    // Thai
    LANGUAGE_CODE_TH = 168;
    // Tigrinya
    LANGUAGE_CODE_TI = 169;
    // Turkmen
    LANGUAGE_CODE_TK = 170;
    // Tagalog
    LANGUAGE_CODE_TL = 171;
    // Tswana
    LANGUAGE_CODE_TN = 172;
    // Tonga
    LANGUAGE_CODE_TO = 173;
    // Turkish
    LANGUAGE_CODE_TR = 174;
    // Tsonga
    LANGUAGE_CODE_TS = 175;
    // Tatar
    LANGUAGE_CODE_TT = 176;
    // Twi
    LANGUAGE_CODE_TW = 177;
    // Tahitian
    LANGUAGE_CODE_TY = 178;
    // Uighur
    LANGUAGE_CODE_UG = 179;
    // Ukrainian
    LANGUAGE_CODE_UK = 180;
    // Urdu
    LANGUAGE_CODE_UR = 181;
    // Uzbek
    LANGUAGE_CODE_UZ = 182;
    // Venda
    LANGUAGE_CODE_VE = 183;
    // Vietnamese
    LANGUAGE_CODE_VI = 184;
    // Volapuk
    LANGUAGE_CODE_VO = 185;
    // Walloon
    LANGUAGE_CODE_WA = 186;
    // Wolof
    LANGUAGE_CODE_WO = 187;
    // Xhosa
    LANGUAGE_CODE_XH = 188;
    // Yiddish
    LANGUAGE_CODE_YI = 189;
    // Yoruba
    LANGUAGE_CODE_YO = 190;
    // Zhuang
    LANGUAGE_CODE_ZA = 191;
    // Chinese
    LANGUAGE_CODE_ZH = 192;
    // Zulu
    LANGUAGE_CODE_ZU = 193;
}